"""
Python2中类分为旧式类和新式类，旧式类的MRO使用深度优先搜索算法
Python3中的类全部都是新式类，所有新式类的MRO使用C3算法（基于广度优先搜索算法的改进）
"""


class A:

    def foo(self):
        print('A', end='')


class B(A):

    def foo(self):
        super().foo()
        print('B', end='')


class C(A):

    def foo(self):
        super().foo()
        print('C', end='')


class D(B, C):

    def foo(self):
        super().foo()
        print('D', end='')


d = D()
d.foo()
